




import java.io.IOException;
import java.util.Random;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.game.TiledLayer;

public class FlipFlop extends GameCanvas implements Runnable {

     private TiledLayer tlBase;
     private LayerManager lm;
     private FlipFlopDesign graphics;
     private volatile Thread thread;

     public FlipFlop(){
          super( true );
     }

     // Когда canvas переходит в режим "невидимый", удаляем thread
     protected void hideNotify(){
          thread = null;
     }

     // Игровой цикл.
     public void run(){
         this.graphics = new FlipFlopDesign();

         try {
           // this.tlBase = this.graphics.getBackGround();
           this.lm = new LayerManager();
           graphics.updateLayerManagerForForest(lm);
           
           Graphics g = getGraphics();
           this.lm.paint(g, 0, 0);
           flushGraphics(0, 0, this.getWidth(), this.getHeight());
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

     // Когда canvas переходит в видимый режим,
     // создаем поток thread и запускаем игровой цикл.

     protected void showNotify(){
          thread = new Thread( this );
          thread.start();
     }
}